package com.obligatorio.persist.dao;

import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.apache.log4j.Logger;

import com.obligatorio.domain.Estudios;
import com.obligatorio.domain.Usuario;

@Stateless
public class EstudioDAOBean implements EstudioDAOLocal {

	@PersistenceContext(unitName = "JPA_UNIT_OBL")
	EntityManager em;
	
	private static final Logger log = Logger.getLogger(EstudioDAOLocal.class
			.getName());

	@SuppressWarnings("static-access")
	@Override
	public Usuario altaEstudio(Usuario userEstudio) throws Exception {
		Usuario tmpUsuario=null;
		try {
			tmpUsuario = em.createNamedQuery("findUser",Usuario.class)
			.setParameter("STATUS", userEstudio.getEstado().ACTIVO)
			.setParameter("Usuario", userEstudio)
			.getSingleResult();
			tmpUsuario.setEstudios(userEstudio.getEstudios());
			em.merge(tmpUsuario);
		} catch (Exception e) {
			System.out.println("User Update DAO> "+e.toString());
			return null;
		}
		return tmpUsuario;
	}

	@Override
	public Estudios actulizarEstudio(Estudios estudio) throws Exception {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Boolean eliminarEstudio(Estudios estudio) throws Exception {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Estudios> obtenerTodoLosEstudios(Usuario user) throws Exception {
		log.info("obtenerTodoLosEstudios()");
		try {
			List<Estudios> res = (List<Estudios>) em.createNamedQuery("findAllEstudiosUser", Estudios.class)
					.setParameter("Usuario", user)
					.getResultList();
			log.info("Count Estudios : "+res.size());
			return res;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	@Override
	public Estudios unEstudio(Estudios estudio) throws Exception {
		// TODO Auto-generated method stub
		return null;
	}

}
